Integrated circuits are an integral part of any electronic device. A variety of integrated circuits are often used together to enable the operation of the electronic device. While integrated circuits are typically designed for a particular application, certain integrated circuits may have configurable logic.
For example, an application specific integrated circuit (ASIC) may have portions comprising configurable logic. Another type of integrated circuit which has configurable logic is a programmable logic device (PLD). A programmable logic device is designed to be user-programmable so that users may implement logic designs of their choices. One type of programmable logic device is a Complex Programmable Logic Device (CPLD). A CPLD includes two or more “function blocks” having a two-level AND/OR structure connected together and to input/output (I/O) resources by an interconnect switch matrix. Another type of programmable logic device is a field programmable gate array (FPGA). In a typical FPGA, an array of configurable logic blocks (CLBs) is coupled to programmable input/output blocks (IOBs). The CLBs and IOBs are interconnected by a hierarchy of programmable routing resources. For both of these types of programmable logic devices, the functionality of the device is controlled by configuration data bits of a configuration bitstream provided to the device for that purpose.
Integrated circuits may be used in arrangements for transmitting data. Because data transmitted using a power amplifier (PA) may be distorted, a predistortion circuit may be employed. The purpose of predistortion is to negate the non-linear effects of a power amplifier. Predistortion is achieved by applying a non-linear filter to the signal prior to transmission. The predistortion circuit acts on the transmitted data to cancel the distortion in the PA by implementing an inverse model of the amplifier. The predistortion circuit may be a function having a vector of parameters applied to the sequence of transmitted data. However, implementing a predistortion circuit in a device having programmable logic poses a number of problems.